A robot may perform a variety of tasks during which an end effector or other component(s) of the robots must move to perform the tasks. A trajectory of the end effector during the movement defines the progression over time of motion states (e.g., position, velocity, acceleration, and/or jerk) of the end effector. Moreover, the trajectory of the end effector during the movement is dictated by the trajectories of actuators of the robot that control the movement of the end effector. Accordingly, the trajectory of the end effector during a movement is dictated by the progression over time of position, velocity, acceleration, and jerk of each of the actuators that control the movement of the end effector.
Various techniques may be employed for determining one or more trajectories to be followed by a robot in performance of a task. For example, some robots may employ a non-real-time trajectory optimizer to determine a trajectory of an end effector. For instance, gradient optimization techniques may be utilized such as techniques that first find a feasible trajectory that satisfies a set of constraints, then iteratively optimize the feasible trajectory to remove redundant and/or “jerky” motion and/or in view of other optimization parameters.
Also, for example, some robots may employ real-time trajectory generation techniques that enable trajectories for actuators to be generated in real-time (e.g., within a control cycle of a robot), while taking into consideration kinematic motion constraints of the robots.
However, some techniques for determining trajectories may suffer from one or more drawbacks. For example, non-real-time trajectory optimization techniques may not be applicable to scenarios where real-time trajectory generation is desirable and/or necessary. Also, for example, some non-real time trajectory optimization techniques and/or some real-time trajectory generation techniques may not enable generation of a trajectory that seeks to reduce a chance of collision of a robot with obstacles, may not account for changes to dynamic obstacles in the environment of the robot, and/or may not enable generation of a trajectory that both seeks to reduce a chance of collision with obstacles and seeks to achieve time efficiency. Additional and/or alternative drawbacks of these and/or other techniques may be presented.